Linguagem C: revisão intensiva da matriz final

Em relação à resolução da descrição do array e seu valor inicial:
Exemplo: (1)
int a [] [4] = {0,0};
Exemplo: (2)
int a [3] [4] = {0};

Semelhante à descrição dos dois, cada elemento da matriz a pode obter o valor inicial 0. Derivado
disso:
Exemplo (três): int a [] [3] = {1,2,3,4,5,6,7};
Sua matriz a contém 9 elementos, e a primeira dimensão é 3 . a
este respeito, o int a [] [3] = {1,2,3,4,5,6,7}; faça uma comparação - a primeira dimensão da matriz bidimensional de tamanho 3.

É importante notar que:
int a [] [4] = {0,0}; O tamanho da primeira dimensão deste array bidimensional a é 1.

Conhecimento de ponta (apenas entenda):
Se a matriz bidimensional a tem m colunas, a fórmula para calcular a posição de qualquer elemento a [i] [j] na matriz é i * m + j + 1.

Pessoalmente, as matrizes de caracteres são mais difíceis do que as matrizes numéricas.
O primeiro é descobrir strings e caracteres.

Inicialize duas matrizes de caracteres:

char a[ ]="ABCDEF";

char b[ ]={
    
    'A', 'B', 'C', 'D', 'E', 'F'};

O comprimento de a é maior do que o de b. Strings e personagens.

scanf ("% s% s", a, b);
é o formato de entrada correto da matriz de caracteres a, b (mencionado em meu blog anterior). Isso não requer o caractere de comando &.

A declaração correta sobre a matriz de caracteres:
qualquer caractere no conjunto de caracteres ASCII pode ser armazenado na
matriz de caracteres. A string de caracteres da matriz de caracteres pode ser inserida e gerada como um todo. Não é
possível comparar as strings na matriz de caracteres com operadores relacionais

A saída da matriz de caracteres será automaticamente agrupada e gerada ao encontrar '\ 0'.

Dicas sujeitas a erros Os
operadores relacionais podem ser usados ​​para comparar caracteres únicos;
mas para strings, isso requer o arquivo de cabeçalho #include <string.h> antes de chamar
funções como strcat, strcmp, strcpy, strlen, etc., para aplicar entre as strings.

Solicitação de erro detalhada (um erro comum para a maioria dos iniciantes)
char s [5] = "abcde";
Este tipo de inicialização do array s está errado. Como um iniciante, fiz uma comparação e confirmei que
e não foi removido :

#include<stdio.h>
int main()
{
    
    
	char s[5]="abcde";
	puts(s);
}

Resultado da corrida:

após a remoção de e:

#include<stdio.h>
int main()
{
    
    
	char s[5]="abcd";
	puts(s);
}

resultado da operação:

A razão é que '\ 0' na matriz de caracteres também ocupa uma unidade de armazenamento. Deixar de perceber isso pode levar a caracteres truncados.

Para determinar se as duas strings são iguais, a instrução correta
if (! Strcmp (a, b))
especifica que esta instrução é porque if (strcmp (a, b)> 0) é comumente usado
if (strcmp (a, b) <0) if (strcmp (a, b) == 0)
é uma zona cega de conhecimento.

Em seguida, haverá questões de programação interessantes para compartilhar.

Acho que você gosta

Origin blog.csdn.net/yooppa/article/details/112296620
Recomendado
Clasificación