C Programming :: A Basic Tutorial ::C Programação:: Um Tutorial Básico::
Published by: dEmOn , on 2007-09-08 10:21:54 Publicado por: Demon, em 2007-09-08 10:21:54
This is my first article here..^^ Este é o meu primeiro artigo aqui .. ^ ^
well.. bem ..
i didn't "directly" wrote this tutorial here... Eu não "diretamente" escreveu este tutorial aqui ...
This is originally from my site: http://www.cprogrammingdock.serverspeople.net/ Esta é originalmente do meu site: http://www.cprogrammingdock.serverspeople.net/ which i wrote few months ago..^^ o que eu escrevi há alguns meses .. ^ ^
and thought this maybe useful to those who haven't yet visited the site.. e achei isto poderá ser útil para aqueles que ainda não visitaram o site ..
So here we are :D Então, aqui estamos nós: D
+++++++++++++++++++++++++++++++++ C Programming Programação C +++++++++++++++++++++++++++++++++
What is C programming? O que é programação C?The C Programming Language is a structured, modular, compiled, general purpose language Traditionally used for system programming. A Linguagem de programação C é uma estruturada, modular, compilados, da finalidade geral Tradicionalmente linguagem de programação usada para sistema.It is portable, so you can easily transfer application programs written in C from one system from one another. É portátil, assim você pode facilmente transferir programas aplicativos escritos em C a partir de um sistema a partir de um outro.You can use C for almost any programming task, anywhere. Você pode usar C para quase qualquer tarefa de programação, em qualquer lugar.
C allows the most precise control of input and output. C permite o controle preciso mais de input e output.This can result in short efficient programs, where the programmer has made wise use of C's range of powerful operators. Isso pode resultar em curtos programas eficientes, em que o programador tenha feito uso sábio de C da gama de operadores poderosos.It also allows the programmer to produce programs which are impossible to understand. Ele também permite o programador para produzir programas que são impossíveis de entender.
Learning in C can result for better understanding of other languages such as C++, which is the superset of C, and many others, they almost share the same format. Aprender na C pode resultar de uma melhor compreensão de outras linguagens como C + +, que é a contida de C, e muitos outros, quase que partilham o mesmo formato.If you were familiar with C, you can have knowledge support to learn other Programming Languages. Se você estivesse familiarizado com C, você pode ter conhecimentos apoiar a aprendizagem de outras linguagens de programação.
++++++++++++++++++++++++++++++++++++ Your First Program in C Seu primeiro programa em C ++++++++++++++++++++++++++++++++++++
This section of this tutorial will teach you how to write a program in C. Esta seção deste tutorial irá ensinar-lhe como escrever um programa em C.
Here is the most popular program, "Hello World!" Aqui é o programa mais popular, "Olá Mundo!"
Hello World! Olá Mundo!
Write this on your editor, Escreve isso no seu editor,
Save this as Hello.c, .c extension means that the file is a C source code. Salvar como Hello.c,. C prorrogação significa que o arquivo C é um código fonte.Now, compile this code using your compiler, then execute/run the code. Agora, compilar o código usando seu compilador, em seguida, executar / executar o código.If you are using Turbo C, you saw the screen flash, and nothing happened, press alt + f5 to view your work. Se você estiver usando Turbo C, que viu a tela piscar, e nada aconteceu, pressione alt + f5 para ver o seu trabalho.
Lets talk about our program, in our program, we output the string "Hello World!", for we to do that , we made use of a function, the function printf, we will talk more of this later. Permite conversar sobre nosso programa, em nosso programa, temos de saída a string "Olá Mundo!", Para nós a fazê-lo, fizemos uso de uma função, a função printf, vamos falar de mais esta tarde.
We started typing "#include", this is a preprocessor, along that we typed <stdio.h> this means that we included the header file stdio.h, this file contains the functions that we will use, one of the function we used is printf. Começamos escrevendo "# include", este é um preprocessador, a par de que digitou <stdio.h> isso significa que estamos incluídos no cabeçalho stdio.h arquivo, esse arquivo contém as funções que iremos utilizar, uma das funções que usávamos É printf.
Next, we typed main(), this is the main part or the body of our program, under main are statements enclosed with brackets ( "{ }"). Em seguida, foram digitados principal (), esta é a principal parte do corpo ou do nosso programa, sob principais afirmações são fechados com parênteses ( "()").In our main program we typed, Em nosso programa principal é digitado,
And we used printf. E usamos printf.printf outputs data into the screen, as we have done, we made printf output Hello World! printf saídas de dados na tela, como temos feito, nós fizemos printf saída Olá Mundo!on the screen. na tela.In the code, Hello World! No código, Olá Mundo!is followed by "n", this is an escape sequence, this tells the compiler to move the cursor to the next line. É seguido por "n", esta é uma sequência de escape, diz ao compilador para mover o cursor para a próxima linha.
There are many kinds of escape sequences, here are the mostly used: Existem vários tipos de seqüências escapar, aqui são os mais utilizados:
\n - newline \ n - newline
\t - tab \ t - guia
\b - backspace \ b - backspace
\xhhh - insert the character represented by ASCII code hhh, where hhh is equal to 1 to 3 hexadecimal digits \ xhhh - inserir o personagem representado pelo código ASCII hhh, onde hhh é igual a 1 para 3 dígitos hexadecimais
You may have noticed, the statement ends in semicolon ";", this tells the compiler that it is the end of a sentence. Você deve ter notado, a declaração termina em ponto e vírgula ";", diz ao compilador que é o final de uma frase.If you forgot to put a semicolon after each statements, you will receive an error that tell that a semicolon is missing in the particular statement. Se você se esqueceu de colocar uma vírgula depois de cada declarações, você receberá um erro que diz que está faltando um ponto e vírgula, em particular a declaração.
+++++++++++++++++++++++++++++++ Math in C Matemática na C +++++++++++++++++++++++++++++++
Now that we know how to output. Agora que sabemos como saída.We can now go on and lets talk about Math in C and Inputs. Podemos ir agora e deixa de falar de Matemática e na C Entradas.
Modify Hello.c, edit it like this. Modificar Hello.c, editá-lo assim. CODE : CÓDIGO:
#include <stdio.h># include <stdio.h>
main()main () {( int a,b,sum;int a, b, soma;
printf("Enter two numbers: ");printf ( "Entre dois números:"); scanf("%d %d", &a,&b);scanf ( "% d% d", & a, & b); sum = a + b;sum = a + b; printf("\nThe sum is %d", sum);printf ( "\ nA soma é% d", soma); })
Save this as sum.c Salvar como sum.c
Let us now analyze. Vamos agora analisar.Under the main program, there are several changes, Ao abrigo do programa principal, existem várias mudanças,
CODE : CÓDIGO:
int a,b,sum;int a, b, soma;
The statement above means that we declared 3 variables under 1 data type "int", the variables were, a, b and sum. A afirmação acima significa que temos 3 variáveis declaradas ao abrigo 1 digite os dados "int", foram as variáveis, a, b e total. Data Types Tipos de dados
There are many data types in C, here are the four basic types: Existem muitos tipos de dados em C, aqui estão os quatro tipos básicos:
Integers - numbers you learned to count. Inteiros - números que você aprendeu a contar.
Floating Point Numbers - have fractional portions and exponents, also known as real numbers. Números de ponto flutuante - têm fracionário porções e expoentes, também conhecido como números reais.
Text - made up of single characters and strings. Texto - composta de caracteres individuais e cordas.
Pointers - holds the address of variables. Ponteiros - guarda o endereço de variáveis.Does not hold data. Não dispor de dados. Format Specifications Formato Especificações
Another statements that are new are, Outro declarações que são novos são,
CODE : CÓDIGO:
scanf("%d %d", &a,&b);scanf ( "% d% d", & a, & b); sum = a + b;sum = a + b; printf("nThe sum is %d", sum);printf ( "nThe soma é% d", soma);
Now we used the scanf function. Agora usamos a função scanf.scanf lets the user to input data during runtime. scanf permite ao utilizador a introdução de dados durante o runtime.We made use of "%d".%d is one kind of format command called a format specification. Nós fizemos uso do "% d".% D é uma espécie de formatar um comando chamado especificação de formato.scanf says that we must input 2 integers seperated by a space. scanf diz que temos de introduzir 2 inteiros separados por um espaço.All format specifications starts with a percent sign "%" and usually followed by a single letter, indicating the data type to be inserted. Todas as especificações de formato começa com o sinal de percentagem "%" e geralmente seguido por uma única letra, indicando o tipo de dados a serem inseridos.%d is the format specification which means integer. % d é a especificação de formato que significa inteiro.So, you can only input numbers from -32768 to 32767. Então, você só pode introduzir números -32.768 a 32767.
Here are other examples of format specifications and the data type they specifies, Seguem-se outros exemplos de especificações de formato e do tipo de dados que especifica,
%u - unsigned integer - 0 to 65535 % u - unsigned integer - 0 a 65535
%ld - long integer - - 2147483648 to 2147483647 % ld - tempo inteiro - - 2147483648 a 2147483647
%p - pointer value % p - valor ponteiro
%f - floating point - 3.4-38 to 3.4+38 % f - ponto flutuante - 3.4-38 para 3,4 +38
%e - float in exponential form % e - float em forma exponencial
%c - character % c - caracter
%s - string % s - string
%x - integer in hexadecimal format % x - inteiro no formato hexadecimal
In our program, after the format specification, we typrd &a,&b, this means that when the user inputs the first integer, it will be addressed to a, "&"is an address operator.Same as the second integer, when the user inputs the second integer, it will be addressed to b. Em nosso programa, após a especificação de formato, estamos typrd & a, & b, isto significa que quando o usuário inputs o primeiro inteiro, será dirigida a um, "&" é que operator.Same um endereço inteiro, o segundo, quando o usuário insumos, o segundo inteiro, será abordada a b.
The next statement is more like the operation of our program, it says that add a and b together and assign the answer to sum. A próxima declaração é mais parecido com o funcionamento do nosso programa, ele diz que acrescentar a e b juntos e atribuir a resposta à soma."=" is an assignment operation, the operations usually take process on the rvalue(right value), and to be addressed to the lvalue(left value) by =. "=" É uma atribuição operação, as operações demoram normalmente sobre o processo rvalue (direita valor), e deve ser endereçado à lvalue (esquerda valor) por =.
in the last statement, we used printf again, and we again used format specification. na última declaração, usamos printf novamente, e nós novamente utilizado especificação de formato.When we are using format specifications in output, we are referring to a variable which holds value and to be printed on the screen, for that, we must call the name of the variable after the string, like our example, Quando estamos usando o formato de saída especificações, estamos nos referindo a uma variável que detém e valor a ser impresso na tela, para isso, temos que chamar o nome da variável após a string, como o nosso exemplo,
CODE : CÓDIGO:
printf("nThe sum is %d", sum);printf ( "nThe soma é% d", soma);
This outputs the value of the variable sum. Esta saídas o valor da variável soma.sum has a value of a + b. tem um valor soma de a + b.
Now you know how are these statements connected, pretty cool ha?! Agora você sabe como são essas declarações ligado, ha muito fixe! Arithmetic Operators Operadores Aritméticos
Here are the commonly used operations in C, Aqui estão os comumente utilizados em operações C,
+ Addition + Adição
- Subtraction - Subtracção
* Multiplication * Multiplicação
/ Division / Divisão
% Modulus(Remainder) Modulus% (Restante)
++ Increment + + Incremento
-- Decrement - Decremento
You might be confused, in a++ and ++a, this is mostly confusing in operations. Você pode estar confuso, em um + + + + e um, isto é confusa principalmente em operações.
Suppose there are two expressions, Suponhamos que há duas expressões,
CODE : CÓDIGO:
sum = a + b++;sum = a + b + +;
sum = a + ++b ;sum = a + + + b;
The first expression says, "Add a and b together, assign the result to sum, and increment b by one. The second says "Increment b by one, a and b together, and assign the result to sum.Get it? A primeira expressão diz: "Fazer a e b juntos, atribuir o resultado para somar, e por um incremento b. O segundo diz" b Incremente por um, a e b juntos, e atribuir o resultado para sum.Get-lo?
++++++++++++++++++++++++++++++ Conditional Statements As declarações condicionais ++++++++++++++++++++++++++++++
There are two other types of operations that we haven't discussed yet, these are logical and relational operators. Existem dois outros tipos de operações que não tenhamos discutido ainda, estes são os operadores lógicos e relacionais. Relational Operations Operações relacionais
Relational operations allow you to compare two values, yielding the result based on whether the comparison is true or false. Operações relacionais permitem comparar os dois valores, obtendo-se o resultado com base em saber se a comparação é verdadeira ou falsa.If the comparison is false then the resulting value is 0,if true, the value is 1. Se a comparação for falsa, em seguida, o valor resultante é 0, se verdadeiro, o valor é 1.
Here are the relational operations in C, Aqui estão as operações relacionais em C,
> greater than > Maior que
>= greater than or equal to > = Igual ou superior a
< less that <Menor que
<= less than or equal to <= Menor ou igual a
== equal to == Igual a
!= not equal to ! = Não igual a
Now, the question is, how to use these in C. Agora, a pergunta é, como usar estes em C. If and Else Se e Else
Modify sum.c,edit as follows, Sum.c alterar, modificar da seguinte forma, CODE : CÓDIGO:
#include <stdio.h># include <stdio.h>
main()main () {( float a,b,ratio;float a, b, ratio;
printf("Enter two numbers: ");printf ( "Entre dois números:"); scanf("%d %d", &a,&b);scanf ( "% d% d", & a, & b); ratio = a / b;ratio = a / b; if (b == 0)if (b == 0) printf("nInvalid Inputs!");printf ( "nInvalid Insumos!"); elsediferente printf("nThe ratio is %d", ratio);printf ( "ratio é nThe% d", "ratio"); })
Save this as ratio.c Salvar como ratio.c
We all know that in division, we cannot divide a number by 0, so in our program, we made use of conditional statements to avoid this mistake. Todos nós sabemos que na divisão, não podemos dividir um número por 0, pelo que, em nosso programa, fizemos uso do condicional declarações para evitar este erro. CODE : CÓDIGO:
if (b == 0)if (b == 0) printf("nInvalid Inputs!");printf ( "nInvalid Insumos!"); elsediferente printf("nThe ratio is %d", ratio);printf ( "ratio é nThe% d", "ratio");
This is a conditional statement. Esta é uma afirmação condicional.It says that if b (which is the divisor) is equal to 0, then the statement/s under these will be executed, in the other hand, if it is false, the statement/s under else will be executed. Ele diz que, se b (que é o divisor) é igual a 0, em seguida, a declaração / s sob estes serão executados, em contrapartida, se ela é falsa, a declaração / s sob else será executado.
NOTE: In conditional statements, else can be optional. NOTA: Em declarações condicionais, mais pode ser facultativa.
So, if the user entered 0 as a divisor(b), an error message will be displayed. Portanto, se o usuário digitou 0 como um divisor (b), uma mensagem de erro será exibida.
The conditional statement's syntax is, A declaração da sintaxe é condicional, CODE : CÓDIGO:
if(expression)if (expressão)
sets of statements;conjuntos de declarações;
elsediferente
sets of statements;conjuntos de declarações;
If the statements under each condition are more than 1, brackets should be placed. Se as declarações no âmbito de cada estado são mais de 1, deve ser colocada entre parêntesis.
NOTE: If and else doesnt need to have semicolons. NOTA: Se outra pessoa e doesn't precisa ter semicolons.
Logical Operators Operadores Lógicos
There are also three logical operators, Existem também três operadores lógicos,
&& AND & & E
|| OR | | OR
! NOT NÃO
These operators allows you to combine relational expresiions. Estes operadores permite-lhe combinar expresiions relacional.
AND E
true && true = true true & & true = true
true && false = false = true & & falsa falso
false && true = false false = true & & false
false && false = false falso & & false = false
OR
true && true = true true & & true = true
true && false = true true & & false = true
false && true = true falso & & true = true
false && false = false falso & & false = false
NOT NÃO
!true = false ! = true false
!false = true ! falsa = true
The examples above should be up to you to understand because its logical..=) Os exemplos acima deveria ser até você a entender porque a sua lógica ..=)
We had tackled about programs that executes conditionally (conditional statements), but now, how would you like to know programs that executes repeatedly. Nós tínhamos abordado sobre os programas que executa condicionalmente (condicional declarações), mas agora, como você gostaria de conhecer programas que executa repetidamente.These are Loops. Estas são Loops.
There are three basic kinds of loops. Existem três tipos básicos de loops.
while loop, while loop,
for loop, de loop,
do..while loop fazer .. while loop While Loop Enquanto Loop
Lets talk about the while loop. Permite conversar sobre o ciclo while.The while loop is the most general loop, and it can be used to replace the other two, in other words, the other two are only for special cases, but this loop can do the functions of the other two. O ciclo while loop é a mais geral, e ele pode ser usado para substituir as outras duas, em outras palavras, os outros dois são apenas para casos especiais, mas esse laço pode fazer as funções dos outros dois.
Here is an example, Aqui está um exemplo, CODE : CÓDIGO:
#include <stdio.h># include <stdio.h>
main()main () {( int length;int comprimento; length = 0;comprimento = 0; puts("Enter a string and press ENTER :");puts ( "Digite uma string e pressione Enter:"); while (getchar() != 'n')while (getchar ()! = 'n') length++;comprimento + +; printf("nYour Sentence was %d characters long" length);printf ( "Frase foi nYour% d caracteres" comprimento); })
This program lets you type a string and counts how many characters does your string have until you press ENTER. Este programa permite que você digite uma seqüência e conta quantos personagens não têm a sua seqüência até que você pressione ENTER.pretty great huh.. muito bonita né ..
Just like conditional statements, loops also consider expressions, when the expression is false, it escapes the loop, and until the expression is true, it will repeatedly execute the statements under the loop. Assim como declarações condicionais, loops considerar também Expressões, quando a expressão é falsa, ela escapa do ciclo, e até que a expressão é verdadeiro, ele irá executar repetidamente as declarações sob a alça. For Loop Por Loop
Lets move on to the for loop. Permite passar ao ciclo for.Consider this example. Considere este exemplo. CODE : CÓDIGO:
#include <stdio.h># include <stdio.h>
main()main () {( int length;int comprimento;
puts("Enter a string and press ENTER :");puts ( "Digite uma string e pressione Enter:"); for(length = 0;getchar() != 'n';length++)for (comprimento = 0; getchar ()! = 'n'; comprimento + +) {( }) printf("nYour Sentence was %d characters long", length);printf ( "Frase foi nYour% d caracteres", comprimento); })
This example functions the same as the previous program, but here, we used for loop instead of while loop. Este exemplo funciona da mesma forma que o programa anterior, mas aqui, vamos utilizar para, em vez de loop while loop.As you can see, for loop merges 3 statements into one parenthesis. Como você pode ver, por 3 declarações em malha mescla um parêntese.The for loop uses these statements as a condition to control the loop in the inner statements. O ciclo for usa estas declarações como uma condição para controlar o laço no interior declarações.At our example, we don't need statements so we've just inserted the brackets. No nosso exemplo, não precisamos de declarações por isso basta inserir os colchetes.
NOTE: For that, if you will not put brackets, the compiler will consider the next statement as a statement of the for loop. NOTA: Para que, se você não irá colocar entre parênteses, o compilador irá considerar o próximo como uma declaração de declaração para o loop.
The question, Why use for loop instead of just while loop? A questão, Por que utilizar para, em vez de apenas loop while loop?As i have said earlier, the two other loops are used in special cases, some uses of for loop are multidimensional arrays(advanced topic :: you will learn this soon). Como já afirmei anteriormente, as outras duas alças são utilizadas em casos especiais, algumas das utilizações para loop são multidimensional arrays (avançado tópico:: você vai aprender mais rápido este). Do..While Loop Do ciclo while ..
Now, what if you want to have a special function to halt your program?. Agora, o que se pretende ter uma função especial para travar o seu programa?.Use the do while loop.. Use o fazer enquanto loop ..
Here is an example, Aqui está um exemplo, CODE : CÓDIGO:
#include <stdio.h># include <stdio.h>
main()main () {( int a;int um; dofazer {( a = 1;a = 1; printf("%dn", a);printf ( "% dn", a); printf("nPress 'x' to quit, any other key to continue");printf ( "nPress' x 'para sair, qualquer outra tecla para continuar"); }) while (getch() != 'x');while (getch ()! = 'x'); })
If you will run this program, it will output 1 and ask you to press a key, if you choose 'x', the program will halt, on the other hand, if you press keys other than 'x', the code between do and while will repeat. Se você executar este programa, ele irá saída 1 e pedir-lhe para premir uma tecla, se você escolher 'x', o programa irá travar, por outro lado, se você pressionar as teclas diferente de 'x', o código entre fazer e ao mesmo tempo que irá repetir.
NOTE: the while in the do while loop, requires a semicolon. NOTA: enquanto que a de fazer o while loop, requer um ponto e vírgula.
In some reasons, you may have been tired and lazy in typing operations over and over again. Em alguns motivos, poderá ter sido preguiçoso e cansado na digitação operações, uma e outra vez.For that you can use functions. Por que você pode usar funções.
Functions are like shortcuts, whenever you will use an operation, you will just have to call it, by its function name. Funções são como atalhos, se você usar uma operação, você só tem que chamá-lo de sua função por nome.
Here is an example, Aqui está um exemplo,
CODE : CÓDIGO:
#include <stdio.h># include <stdio.h>
void math_all(int a, int b);void math_all (int a, b int);
void math_all(int a,int b)void math_all (int a, b int) {( int sum,dif,pro,quo;int soma, dif, pro, quo;
sum = a + b;sum = a + b; dif = a - b;dif = a - b; pro = a * b;pró = a * b; quo = a / b;quo = a / b; printf("nThe Sum is %d",sum);printf ( "Soma é nThe% d", soma); printf("nThe Difference is %d",dif);printf ( "A diferença é de nThe% d", dif); printf("nThe Product is %d",pro);printf ( "O produto é nThe% d", pró); printf("nThe Quotient is %d",quo);printf ( "nThe quociente for% d", quo); })
Here, in our program, we made use of functions to call on different basic operations such as addition, subtraction, multiplication and division. Aqui, no nosso programa, fizemos uso das funções de chamada em diferentes operações básicas, como a adição, subtração, multiplicação e divisão.As i mentioned earlier, functions are like shortcuts, analyze the code and see what i mean. Como mencionei anteriormente, as funções são como atalhos, analisa o código e ver o que quero dizer.
First, we declare the function, functions are declared globally, it means that it can be used in different parts of the program in and out the main().You may notice that we put the word "void" before the name,void means, it doesn't return any values at all. Primeiro, vamos declarar a função, funções são declarados globalmente, significa que ele pode ser usado em diferentes partes do programa de e para o main (). Você pode notar que pomos a palavra "vazio" antes do nome, meio vazio , Ela não devolver quaisquer valores a todos.If the function returns a value, then we should put "int" before the name instead of void. Se a função retorna um valor, então devemos colocar "int" antes do nome, em vez de nulos.After we have declared it, we can use it in main. Após ter declarado que temos, podemos utilizá-lo no principal.
In main, we made use of scanf to get the value of the two numbers (c and d), then we passed the value to a and b, which are variables of the function math_all(). Na principal, que faz uso do scanf para obter o valor dos dois números (c, d), então nós passamos o valor para a e b, que são variáveis da função math_all ().
Next, we defined the function, its more like telling the compiler what does the function do. Em seguida, foram definidas as funções, a sua mais a dizer do que é que o compilador fazer funcionar.It usually composed of Operations and different library functions. É geralmente composta por Operações e diferentes funções biblioteca.
TIP: You can declare and define a function anywhere in the DICA: Você pode declarar e definir uma função em qualquer lugar do program. programa.
So far, we have discussed about variables that holds data, well, in this chapter, we will discuss variables that holds address of data,Pointers. Até agora, temos falado sobre as variáveis que detém os dados, assim, neste capítulo, vamos discutir as variáveis que detém os dados de endereço, Ponteiros.
Before we define pointers, lets have a quick glance about the memory. Antes de nos definir ponteiros, permite ter um rápido olhar sobre a memória. Memory Lookup Memória Lookup
Computers hold programs and data in its memory, also called RAM - Random Access Memory. Computadores segurar dados e programas em sua memória, também chamado de memória RAM - Random Access Memory.The computers memory, at its lowest level, are composed of bits,microscopic electronic circuits, bits are from Binary digITs. Os computadores de memória, a seu nível mais baixo, são compostos por bits, microscópicos circuitos electrónicos, a partir de bits são dígitos binários.
Bits can remeber one of two values (1 and 0), you may have seen numbers written horizontally of vertically composed of 1's and 0's. Bits pode recordar um dos dois valores (1 a 0), você pode ter visto números escritos horizontalmente de verticalmente composto de 1's e 0's.Example, Exemplo,
11011010
These are bits, and every 8 bits of them are called bytes, if you want to know more of this, do search for binary numbers and find tutorials. Estas são bits, e cada 8 bits eles são chamados de bytes, se você quiser saber mais desta, fazer pesquisa para encontrar de números binários e tutoriais.Each byte in a computer's memory has a unique address -- Usually Hexadecimal Format, hexadecimal characters like 166EE can be converted to bits and vice versa. Cada um byte na memória do computador tem um endereço exclusivo - Normalmente o formato hexadecimal, como caracteres hexadecimais 166EE pode ser convertida em bits e vice-versa.You can have a binary conversion table in the net, if you want, go search for it. Você pode ter um binário tabela de conversão na net, se quiser, vá procurar por ela. Define Pointers Definir Ponteiros
A pointer is a variable that holds the address of some data, rather than the data itself. Um ponteiro é uma variável que guarda o endereço de alguns dados, em vez de os dados em si.But you would ask yourself, Why is it important and how to use it? Mas você poderia perguntar-se, Por que é importante e como usá-lo?
You can use pointer to point to different data and different data structures. Você pode usar ponteiro para apontar para dados diferentes e de diferentes estruturas de dados.By changing the address the pointer contains, you can manipulate information in various locations. Ao alterar o ponteiro contém o endereço, você pode manipular as informações em várias localizações.
Lets see an example of pointers, Vejamos um exemplo de ponteiros,
CODE : CÓDIGO:
#include <stdio.h># include <stdio.h>
main()main () {( int a, *pa;int a, * pa;
a = 9;a = 9; pa = &a;pa = &A; printf("%p", pa);printf ( "% p", pa); })
In this example, we had an output of a memory address, address of 9. Neste exemplo, tivemos uma saída de um endereço de memória, o endereço do 9.Since we have to output an address, we have to use the format specification %p for pointers. Uma vez que temos uma saída para resolver, temos que usar o formato% p especificação para ponteiros.When we declare pointers, we should put an asterisk * before it. Quando nós declaramos ponteiros, deveríamos colocar um asterisco * antes dela.
TIP: In declaring pointers, practice using names starting with p, example, *pa. DICA: Ao declarar ponteiros, prática utilizando nomes começam com p, exemplo, * pa.
If you want to output the data of the address held by the pointer you should write, Se você quer a saída de dados do endereço na posse do ponteiro que você deve escrever,
CODE : CÓDIGO:
printf("%d", &*pa);printf ( "% d", & pa *);
Since you will output a data which is an integer, you should use %d specification. Uma vez que você terá uma saída de dados que é um inteiro, você deve usar% d especificação.
When you assign a varaiable to a pointer, make sure you have this format, Quando você atribuir um varaiable a um ponteiro, certifique-se de ter esse formato,
pointer = address of variable(&) ponteiro = endereço da variável (&)
or ou
Value of pointer(*) = variable Valor do ponteiro (*) = variável
Statements above represents this, As declarações acima representa este,
CODE : CÓDIGO:
pa = &a;pa = &A;
or ou
CODE : CÓDIGO:
*pa = a;* pa = a;
Get it? Entendeu?
After you have finished this tutorials, i recommend to read more advanced tutorials on pointers(since this tutorial is for beginners - basic - only). Depois de ter terminado este tutorial, recomendo a leitura mais avançada tutoriais sobre ponteiros (uma vez que este tutorial é para iniciantes - básico - apenas).
An array is an example of a homogeneous random access data structure. Uma matriz é um exemplo de uma estrutura homogênea de acesso aleatório de dados.An array is merely a collection of similar data elements such as integers, floats, characters, etc. which is stored together with a common name, and addressed by means of index that tells the location of the particular data entity in the array. Um array é uma mera colecção de dados similares elementos tais como números inteiros, flutuadores, personagens, etc, que é armazenada juntamente com um nome comum, e dirigida por meio de índice que indica a localização da entidade, em especial os dados do array.
When we use homogeneous to an array, it means that each cells have the same data type, and the random-access aspect tells that we can access any of the cells of an array directly by just using its indices. Quando usamos homogênea para um array, isso significa que cada células têm o mesmo tipo de dados, e as de acesso aleatório aspecto diz que podemos acessar qualquer uma das células de um array diretamente por apenas usando seus índices.
Example, Exemplo, CODE : CÓDIGO:
#include <stdio.h># include <stdio.h>
main()main () {( int a[50];int a [50]; a[0] = 19;a [0] = 19; })
Now, what have we done?, well, we assigned a data to an array. Agora, o que temos feito?, Bem, nós atribuímos um dados para um array.
NOTE: an array starts from 0. NOTA: um array começa a partir de 0.Example, in array a[50], the first block starts from a[0] and ends in a[49]. Exemplo, em um array [50], o primeiro começa a partir de um bloco [0], e termina em uma [49].Why 49? Porquê 49?as we declared a[50], we declared 50 blocks, and in an array, the end must be a NULL character . como é declarado um [50], é declarada 50 blocos, e em uma matriz, ao final deve ser um caractere NULL.So, we started from 0 and end in 49 to make 50 a null character. Então, começamos a partir de 0 e terminar em 49 nulidade de fazer 50 a personagem.
If you would visualize the arrays as horizontal blocks, and you addressed 19 to it, it would be like this Se você desejar visualizar as matrizes como blocos horizontais, e que abordou 19 para ela, seria como este
[0] [1] [2][3] [4] [5] [6] [7] [8]...... [0] [1] [2] [3] [4] [5] [6] [7] [8 ]......-- a[0] is the starting array. - Um [0] é a matriz inicial.