void reverse(char* p, int len)
{char* left = p;char* right = p + len - 2;while (left < right){char* temp = left;*left = *right;//当*left=*right后,*temp已经被改为f了*right = *temp;//你再*temp赋值给*right时,已经没用了left++;right--;}}int main()
{char arr[] = "abcdef";int len = sizeof(arr) / sizeof(char);printf("%d\n", len);reverse(arr, len);printf("%s\n", arr);return 0;
}
局部变量是存放在栈上的,栈又是从高到底存放所以先存i后存arr[]
i | |
arr[9] | |
arr[8] | |
arr[7] | |
arr[6] | |
arr[5] | |
arr[4] | |
arr[3] | |
arr[2] | |
arr[1] | |
arr[0] |
打印菱形
#include<stdio.h>int main()
{int line = 0;scanf("%d", &line);//7for (int i = 1; i <= line; i++){for (int j = 0; j < line-i; j++){printf(" ");}for (int j = 0; j < 2 * i - 1; j++){printf("*");}printf("\n");}for (int i = 1; i < line; i++){for (int j = 0; j < i; j++){printf(" ");}for (int j = 0; j < 2 * (line - i) - 1; j++){printf("*");}printf("\n");}return 0;
}
凶手是谁?
char killer = 0;
for (killer = 'A'; killer <= 'D'; killer++)
{if ((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3){printf("%c\n", killer);}
}