Olá e bem-vindo.
Nesta palestra, vamos falar sobre matrizes de comprimento variável.
O que exatamente isso significa?
Bem, este é um novo recurso que foi adicionado, eu acho, para C99.
Mas até este ponto, todos nós saber sobre arrays, além
de serem multidimensionais e também sendo um recurso interessante onde você pode armazenar
vários elementos de dados em uma única variável essencialmente, é que eles
são de tamanho fixo.
Depois de especificar esse tamanho, você tem que usar uma constante codificada.
Quando você declara a variável que especifica o
tamanho e permanece da mesma forma.
Matrizes de comprimento variável é um pouco enganador.
Isso não significa que você vai mudar o tamanho da matriz dinamicamente.
Ainda vai ser o mesmo tamanho, mas agora você pode usar variáveis.
Portanto, o termo variável na variável array de comprimento não significa que você pode modificar o
comprimento de a matriz depois de criá-la.
O que significa é que agora você pode defina uma variável a ser usada para esse array.
então um VLA ainda vai manter do mesmo tamanho após a criação.
A matriz variável permite que você especifique o tamanho e a matriz
com uma variável ao criar uma matriz.
Então você pode apenas usar variáveis, isso é tudo o que realmente significa.
Parece que pode não ser tão útil.
Mas na verdade a única razão foi realmente adicionado porque
ajudou a realmente existir bibliotecas e outras linguagens.
Então C99 introduziu este novo recurso e é usado e é por isso que
eu queria mencioná-lo.
Eu só vou mencionar isso resumidamente, não vou fornecer
um caso de uso detalhado disso.
Eu só queria te dizer que existe porque às vezes
você vê esse termo arrays de comprimento variável um pouco quando você está lendo sobre c.
E eu não gostaria que você visse e dizer
o que diabos isso significa quando estudamos matrizes e não mencionamos o assunto.
Então, foi introduzido principalmente para tornar c uma linguagem melhor
para computação numérica.
VLA é quais matrizes de comprimento variável torna muito mais
fácil converter bibliotecas existentes do Fortran rotinas de cálculo numérico para c.
Então é por isso que foi adicionado.
Então, se você é um Fortran programador, você pode
querer usar isso quando estiver migrando ou se você está convertendo o código.
Se você estiver portando seu Fortran código
tentando converter para c, você pode querer usar isso.
Você não pode inicializar um VLA em sua declaração.
Portanto, não há inicialização quando você está falando sobre
matrizes de comprimento variável.
Aqui estão alguns tamanhos válidos que você pode ser aplicado ao declarar uma matriz.
Portanto, podemos declarar dois variáveis e um m.
E então você vê no fundo quando dizemos float 8 e float a9, podemos usar
essas variáveis quando nós os declaramos no tamanho do array.
E isso não era permitido antes C99, mas agora é
e isso é VLA, array de comprimento variável.
Especificando uma variável para ser usado dentro de uma matriz.
Não está mudando o tamanho em tempo de execução.
Existem outros exemplos aqui válidos declarações de matrizes também às quais você pode
querer prestar atenção.
Perfeitamente bem se você estiver definindo um array para um tamanho específico, como 5.
Você pode usar expressões quando você atribui o tamanho de uma matriz.
Então, no próximo exemplo 5 vezes 2 mais 1, tudo bem.
A outra coisa a notar aqui é estamos usando o operador sizeof, e isso também
é perfeitamente normal, porque isso vai retornar um int.
Sizeof int irá retornar 4 ou 8 dependendo da máquina em que você está rodando
e então você está adicionando 1 a ele, perfeitamente bem.
Colocando um número negativo dentro da declaração de um
array, você não pode fazer isso.
Não existe 4 negativo.
O tamanho da matriz tem que ser maior que 0.
Portanto, o zero também não funcionará.
2 5 colocando um flutuador, não posso fazer isso tampouco, não faz sentido.
Como você pode criar uma matriz de tamanho 2. 5
No entanto, se você colocar 2. 5 dentro os colchetes e você converte
em um int, tudo bem.
Mais uma vez, não queria gastar muito tempo em matrizes de comprimento variável,
eu só quero apresentar o conceito.
Se você ouvir o termo, você sabe o que é isso.
Atribuição de variáveis a uma matriz ao declará-los para o tamanho.
Acabo de apresentar para compatibilidade com
bibliotecas Fortran existentes. Obrigada.