Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


(cap8) - Programação em C - Ponteiros, Notas de estudo de Engenharia Telemática

Apontadores ou ponteiros

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 27/11/2010

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 7

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
  
    


         
           
            
        
        ! 
"   #$#     % &  
  #$# % ' #$#     
 #$# 

     ()
* () + " #$#     ,'- ./0


'  #$# $     #     "  
   1 2#$#3     #$#
 
<tipo> *<nome>;
 45   #$ 45#$# 
1     #$#    6
          % 7   
       1     
&8     
9  $  ##
  %    8
int *m, cont=100, q;
m = &cont;
:   ;<   %   #$# ;<  
  #  ;<  9     ;  <
3   1   ; 1   <
)===
)==)
)==>
)==?
)==@
)==A
)==/
)==?
 

 

B%
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe (cap8) - Programação em C - Ponteiros e outras Notas de estudo em PDF para Engenharia Telemática, somente na Docsity!

       

    

*;   4 5       #$     4 5      # $#  

   1            # $#       6                      %  7                     1          

&8                9    $    ##      %      8  int *m, cont=100, q; m = &cont; :    ; <      %      # $# ;<           #  ;<    9           ;   < 3        1       ; 1     <

)==A

     

    

B % 

       

         2       9 :   $    ##  #  # $#             8   ; <      # $# ;< q = *m;   #  ;<  ;<  ;< $  # )==    2         ;  < 7             ; 1  #    $    <

3                   ! 1 ;   < C2D        E       6 9   2                     8   $         

3 # $#     #           8                                 E    # $#          1          # $#       %         E      C    #  + D         F  main () { float x, y; int *p; p = &x; // p aponta para um float y = *p; // o valor atribuído para y não é o esperado } 7      ;<                        ;G<   (          H      

&  8  ##                 8    3   

                      1      #       8  main() { int x; int *p1, *p2; p1 = &x; p2 = p1; // agora p1 e p2 apontam para x printf(“%p”, p2); // escreve o endereço de x e não o seu valor }

    8                          1                   ;)<          >      #   >=== 3%  8  ; < ) $ >==>   >==)   #   ;)<         %8            I       8    #                 %   %8        1  &   #                  &   #            #    E    1             %8             #  6 1   !#    1        3   8 <   ;)< ;              ;)<          $      3     1       E                  

   :  !#        8     8       ;<  ;<            #$  if (p < q) printf(“p aponta para uma memória mais baixa que q \n”);

       !

                  !#           $               8                                      E$       #   3  8           int *p = NULL; // Macro que define um ponteiro nulo char *p = “alo mundo”; int x = 10; int *p = &x;

      

char str[80], *p1; p1 = str; 3 ;)<                   ; <          ; <         str[4]  *(p1+4)      ##      1 #            #J   @         K       J  @    ;)<          ;)<             ; < 6 1    1          !                  

                       8    C      !  LD              $     8      #                                 8       #     ;  <    8                 &     #      #  !    // Indexa s como uma matriz void puts (char *s) { register int t; for (t=0; s[t]; ++t) putchar(s[t]); }

// Acessa s como um ponteiro void putstr (char s) { while (s) putchar(*s++); // “ *s++; ” é equivalente a “ *s; s++; ” }

   1                      3        ; <   E )=  int *x[10];   1       # $#   E   ;#<           #J   # x[2] = &var;    #  ;#<  #J  *x[2];

       "

'   $                                   +   E               !   8       1   ;8<     void display_array (int *q[]) { int t; for (t=0; t<10; t++) printf (“%d ”, *q[t]); } 7       1   ;<         ;<                 $      ;<                 %    &               

B                  3    !#        8 1             H   %          void syntax_error (int num) { static char *err[] = { “Arquivo não pode ser aberto \n”, “Erro de leitura \n”, “Erro de escrita \n”, “Falha da mídia \n” }; printf(“%s”, err[num]); }

7 8      ;<          J  1 # ; CD<   ; G8M<  E              #$       8   H            8        # )   ;&    <           # >    ;&    <           8            E     ;#< C  @@D ,'- ./0

   

N $# 1                 # $#     E

  E#$         $           # $# 

 8      8  1    #     O3B   

          O3B #              # $#

3  %              1     C  

 %   #D & 1    E F  E            

3      1  J         %     

  &   F         %   #   1   

void *malloc(size_t <número_de_bytes>);

       $

#include <stdio.h> #include <stdlib.h>

int pwr(int a, int b); void table(int p[4][10]); void show(int p[4][10]);

void main(void) { int p; p = (int ) malloc(40sizeof(int)); if(!p) { printf("Falha na solicitação de memória. \n"); exit(1); } // aqui, p ‚ é simplesmente um ponteiro table(p); show(p); } // Constrói a tabela de potências void table(int p[4][10]) { // agora o compilador tem uma matriz para trabalhar register int i, j; for(j=1; j<11; j++) for(i=1; i<5; i++) p[i-1][j-1] = pwr(j, i); } // Exibe a tabela de potências inteiras void show(int p[4][10]) { // agora o compilador tem uma matriz para trabalhar register int i, j; printf("%10s %10s %10s %10s\n", "N", "N^2", "N^3", "N^4"); for(j=1; j<11; j++) { for(i=1; i<5; i++) printf("%10d ", p[i-1][j-1]); printf("\n"); } } // Eleva um inteiro a uma potência especificada pwr(int a, int b) { register int t=1; for(; b; b--) t = ta; return t; }