C言語ポインタの応用

1394 ワード

一、指針説明
ポインタは実際には4バイトのアドレスなので、整数変数に渡すことができます.
二、ポインタがパラメータとして関数に渡される例
#include <stdio.h>
#include <string.h>
 
typedef struct _ZJ_ANIMAL_
{
	char name[32];
	int age;
 
}T_ANIMAL, *PT_ANIMAL;
 
static T_ANIMAL s_animal;  
 
/*************************************
 *     : print_animal                       
 *     :         ,     PT_ANIMAL  ,                               
 *     : iTmp:                            
 *     :                        
 *    :                          
 *     :                        
 *     : add by lzj 2013.12.30                        
 *************************************/
void print_animal(int iTmp)
{
	PT_ANIMAL pAnimal = (PT_ANIMAL)iTmp;
	printf("[print_animal] pAnimal->age = %d, pAnimal->name = %s
", pAnimal->age, pAnimal->name); return; } int main(void) { memset(&s_animal, 0, sizeof(T_ANIMAL)); s_animal.age = 10; snprintf(s_animal.name ,sizeof(s_animal.name),"dog" ); printf("[main] s_animal.age = %d, s_animal.name = %s
", s_animal.age, s_animal.name); print_animal((int)&s_animal); // return 0; } : [root@f8s trans_hand]# ./trans_hand [main] s_animal.age = 10, s_animal.name = dog [print_animal] pAnimal->age = 10, pAnimal->name = dog