c 언어 주의사항

2233 단어
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

//c      
//toupper(str); extern int toupper(int c);
//tolower(str);
//     
void UpperCase(char str[])
{
	size_t i=0;
	for(i=0;i<strlen(str)/sizeof(str[0]);++i)
	{

		if('a'<=str[i]&& str[i]<='z')
		{
			str[i]-='a'-'A';
		}
	}
}
void LowercCase(char str[])
{
	size_t i=0;
	for(i=0;i<strlen(str)/sizeof(str[0]);i++)
	{
		str[i]=tolower(str[i]);
	}
}
void test(char str[100])
{

	printf("test=%d
",sizeof(str));// 4 } //big_endian =0,little_endian=1 x86 int checkCPU() { union w{ int a; char b; } c; c.a=1; return c.b==1; } int sum(int n) { return ((long)1+n)*n/2; } int sum2(int n) { return (1l+n)*n/2; } int sum3(int n) { long sum=0; int i=0; for(i=1;i<=n;i++) { sum+=i; } return sum; } // c scanf printf() 。 int main() { int n; char str[]="abcDE"; int a[5]={1,2,3,4,55}; int *ptr=(int*)((&a)+1);// sizeof(a)=5, char * s="AAA";// , const char * s="AAA"; void *p=malloc(100); char h[100]={10};// h[0]=10 char l[100]; memset(l,10,sizeof(l));// memset 0 printf("%s
",s); printf("*p=%d
",sizeof(p));// 4 test(str); //s[0]='B';// printf("checkCPU=%d
",checkCPU()); printf("sum=%d
",sum(10)); printf("sum2=%d
",sum2(10)); printf("sum3=%d
",sum3(11)); printf("%d,%d
",*(a+1),*(ptr-1));//2,55 sizeof(int*)=1 printf("%s len=%d strlen=%d
",str,sizeof(str)/sizeof(str[0]),strlen(str));// UpperCase(str); printf("%s
",str); LowercCase(str); printf("%s
",str); scanf("%d",&n); fflush(stdin); return 0; }

주의사항
1. 단락 오류가 발생할 때 먼저 단락 오류의 정의를 생각하고 이를 출발하여 오류를 일으키는 원인을 고려해야 한다.
2. 포인터를 사용할 때 포인터를 정의한 후에 포인터를 초기화하는 것을 기억하고 사용할 때 NULL 여부를 판단하는 것을 기억한다.
3. 수조를 사용할 때 수조가 초기화되었는지, 수조 아래 표시가 경계를 넘었는지, 수조 원소가 존재하는지 주의한다.
4. 변수에 접근할 때 변수가 차지하는 주소 공간이 프로그램에서 방출되었는지 주의한다.
5. 변수를 처리할 때 변수의 양식 제어가 합리적인지 주의한다.

좋은 웹페이지 즐겨찾기