quarta-feira, 17 de setembro de 2014

Matrizes, Ponteiros e Strings em C

Olá galera, tudo bem com vocês? O post de hoje falará um pouco sobre Matrizes, Ponteiros e Strings em C.

Todos na área de programação já ouviram falar sobre matrizes. Mas afinal, o que são matrizes??

Matrizes são estruturas indexadas (em forma matricial) utilizadas para armazenar
dados de um mesmo tipo: int, char, float ou double. Por exemplo, a declaração


Alocaria uma estrutura de dados da forma:


Uma pergunta que poderíamos fazer é, como uma matriz fica armazenada na memória?
Como a memória do computador é linear, o armazenamento dos elementos é feito colocando-se cada linha da matriz uma em seguida da outra. Assim, por exemplo, os elementos em uma matriz declarada como int M[100][200] são armazenados na memória do computador.
Isso significa que para a matriz M, os seus elementos são armazenados na memória da seguinte maneira: os 200 elementos da primeira linha M[0][0],M[0][1],...,M[0][199], seguidos pelos elementos da segunda linha M[1][0],M[1][1],...,M[1][199] e assim por diante até a última linha M[99][0],M[99][1],...,M[99][199]. Dessa forma, a disposição dos 20.000 elementos da matriz M na memória seria:



Agora veremos um vídeo que nos mostra como trabalhar com matrizes e ponteiros.


E as strings, o que são?
String é uma seqüência de caracteres utilizada para o armazenamento de texto. Na linguagem C strings são vetores de caracteres que possuem um caracter que indica o término de seu conteúdo, o caracter nulo ‘\0’ (contra-barra zero).

Inicialização de strings:
Uma string pode ser inicializada na sua declaração com uma sequência de caracteres entre chaves e separadas por virgula.

char vetc[6]= {'T', 'e', 'x', 't', 'o', '\0'};

Lembre-se que o compilador só reconhecerá um caractere se este estiver entre aspas simple, logo usar uma atribuição do tipo {t,e,x,t,o,\0} ou {texto\0} irá gerar um erro de compilação.
Uma string pode também ser inicializada por uma seqüência de caracteres entre aspas duplas. Neste caso, não é necessário o uso de aspas simples e virgulas, o compilador C coloca automaticamente o '\0' no final.

char vetc[6] = “Texto”;

Assim como vetores e matrizes, na inicialização de uma string o seu tamanho pode ser omitido.
O compilador vai verificar e considerar o tamanho declarado na inicialização.

char vetc[ ] = “Texto”; /* vetor não-dimensionado, o compilador coloca automaticamente 
o ‘\0’ no final */


Na próxima aula veremos tudo sobre listas em C. Espero que tenham gostado do post de hoje. Semana que vem voltamos.

Referências: 

http://www.ime.usp.br/~hitoshi/introducao/23-matrizes_ponteiros.pdf
http://linguagemc.xpg.uol.com.br/strings.html

Nenhum comentário:

Postar um comentário